using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using SIP.PN.FrontEnd.Code;
using SIP.PN.Servicios.Interfaces.DTO;

namespace SIP.PN.FrontEnd.controles
{
    public partial class BuscadorTarea : ControlAbstracto
    {
        #region Metodos Publicos

        public void Inicializar()
        {
            grd_listado.PageIndex = 0;
            ddl_especilidad.Items.Clear();
            IList<EspecialidadDTO> list = SrvAplicacion.ListarEspecialidad(string.Empty);
            Utilidades.BindearComboBox(ddl_especilidad, list, "Nombre", "Codigo", true);
            up_BuscadorTarea.Update();
        }

        public override void Seguridad()
        {
        }

        public void ResetearFormulario()
        {
            txt_codigo.Text = string.Empty;
            txt_nombre.Text = string.Empty;
            ddl_especilidad.Items.Clear();
        }

        protected void Buscar()
        {
            if (grd_listado.SortExpression == string.Empty)
                grd_listado.Sort("Codigo", SortDirection.Ascending);
            grd_listado.PageIndex = 0;
        }

        public void Mostrar()
        {
            mpe_BuscadorTarea.Show();
        }

        public void Ocultar()
        {
            mpe_BuscadorTarea.Hide();
        }

        #endregion

        #region Eventos

        private event EventHandler<BuscadorEventArgs> seleccionar;
        public event EventHandler<BuscadorEventArgs> Seleccionar
        {
            add { seleccionar += value; }
            remove { seleccionar -= value; }
        }

        private event EventHandler<EventArgs> cancelar;
        public event EventHandler<EventArgs> Cancelar
        {
            add { cancelar += value; }
            remove { cancelar -= value; }
        }

        protected void btn_cancelar_Click(object sender, EventArgs e)
        {
            if (cancelar!=null)
                cancelar(this, new EventArgs());
            Ocultar();
        }

        protected void btn_seleccionar_Click(object sender, EventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            TareaDTO entidad = SrvTarea.Obtener(btn.CommandArgument);
            if (seleccionar != null)
                seleccionar(this, new BuscadorEventArgs(entidad.Codigo, entidad.Nombre));
            Ocultar();
        }

        protected void grd_listado_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Pager)
            {
                Repeater rep = e.Row.FindControl("grd_paginacion") as Repeater;
                if (rep != null)
                {
                    int cant = grd_listado.PageCount;
                    List<int> data = new List<int>();
                    for (int i = 1; i <= cant; i++)
                    {
                        data.Add(i);
                    }
                    rep.DataSource = data;
                    rep.DataBind();
                }
            }
        }

        protected void btn_pagina_OnClick(object sender, EventArgs e)
        {
            LinkButton btn = (LinkButton)sender;
            grd_listado.PageIndex = Convert.ToInt32(btn.CommandArgument) - 1;
        }

        protected void btn_buscar_Click(object sender, EventArgs e)
        {
            Buscar();
        }

        #endregion
    }
}